#pragma once

class Unit
{
public:
	Unit();
	virtual ~Unit();

	const Vector3& getPosition() const { return mPosition; }
	const Rotator& getRotation() const { return mRotation; }
	
	virtual void setPosition(const Vector3& v) { mPosition = v; }
	virtual void setRotation(const Rotator& v) { mRotation = v; }

	virtual void Update(float elapsedTime);

	virtual void AddToMap(Scene* scene);
	virtual void RemoveFromMap();

protected:
	Scene* mScene;
	Vector3 mPosition;
	Rotator mRotation;
	float mMoveSpeed;
	float mBoundRadius;
	float mBoundHeight;
};
